#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 字母异位词分组
# 给你一个字符串数组，请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
# 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
#
# @Author    :zjk
# @Time      :2024/5/14 21:54
from typing import List

class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        dic = {}
        for i in range(len(strs)):
            tmp = "".join(sorted(strs[i]))
            if tmp not in dic:
                dic[tmp] = [strs[i]]
            else:
                dic[tmp].append(strs[i])
        return list(dic.values())

if __name__ == '__main__':
    solution = Solution()
    strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
    print(solution.groupAnagrams(strs))

    strs = [""]
    print(solution.groupAnagrams(strs))

    strs = ["a"]
    print(solution.groupAnagrams(strs))
